/**
 * 
 */
package org.gov.vis.data.controller;

import java.util.HashMap;
import java.util.List;

import org.gov.vis.data.dto.AIDto;
import org.gov.vis.master.controller.BaseCtlr;

/**
 * @author Vishwanath
 *
 */
public interface AICtlr extends BaseCtlr{

	/**
	 * This holds the error messages of the service layer.
	 */
	HashMap<String, String> errorMsgs = new HashMap<String, String>();

	/**
	 * Method called to Add or Edit the AI
	 * @param aiDto
	 * @throws Exception
	 */
	public void addOrEditAI(final AIDto _aiDto) throws Exception;
	
	/**
	 * Method called to delete the AI Object based on the passed ai Id
	 * @param _aiId
	 * @throws Exception
	 */
	public void deleteAI(long _aiId) throws Exception;
	
	/**
	 * Method called to get the AI based on the passed AI Object
	 * @param aiDto
	 * @return
	 * @throws Exception
	 */
	public AIDto getAI(final AIDto _aiDto) throws Exception;
	
	/**
	 * Method called to get the list of AI based on the passed AI Object
	 * @param aiDto
	 * @return
	 * @throws Exception
	 */
	public List<AIDto> getAIs(final AIDto _aiDto) throws Exception;
	
	/**
	 * Method called to search for the AIs based on the passed AI Object
	 * @param aiDto
	 * @return
	 * @throws Exception
	 */
	public List<AIDto> searchAIs(final AIDto _aiDto) throws Exception; 
	
	/**
	 * Method called to get the AI based on the passed primary key Id
	 * @param _aiId
	 * @return
	 * @throws Exception
	 */
	public AIDto getAI(final long _aiId) throws Exception;
	
	/**
	 * Method called to get the AI based on the passed Code
	 * @param _aiCode
	 * @return
	 * @throws Exception
	 */
	public AIDto getAIOnCode(final String _aiCode) throws Exception;
	
	/**
	 * Method called to get the AI based on the passed Breed
	 * @param _aiCode
	 * @return
	 * @throws Exception
	 */
	public AIDto getAIOnBreed(final String _aiBreed) throws Exception;
	
	/**
	 * Method called to get the AI based on the passed BullNo
	 * @param _aiCode
	 * @return
	 * @throws Exception
	 */
	public AIDto getAIOnBullNo(final String _aiBullNo) throws Exception;
	
}//end interface
